home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet internetowy / Rozne / HTTrack 3.40-2 / httrack-3.40-2.exe / {app} / src_win / WinHTTrack / WinHTTrackDoc.cpp < prev    next >
C/C++ Source or Header  |  2004-02-15  |  5KB  |  193 lines

  1. // WinHTTrackDoc.cpp : implementation of the CWinHTTrackDoc class
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "WinHTTrack.h"
  6.  
  7. #include "WinHTTrackDoc.h"
  8.  
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14.  
  15. // fexist
  16. extern "C" int fexist(char*);
  17.  
  18. /* dialog0 */
  19. #include "NewProj.h"
  20. extern CNewProj* dialog0;
  21.  
  22. /* Main WizTab frame */
  23. #include "WizTab.h"
  24. extern CWizTab* this_CWizTab;
  25.  
  26. // dirtreeview
  27. #include "DirTreeView.h"
  28. extern CDirTreeView* this_DirTreeView;
  29.  
  30. /////////////////////////////////////////////////////////////////////////////
  31. // CWinHTTrackDoc
  32.  
  33. IMPLEMENT_DYNCREATE(CWinHTTrackDoc, CDocument)
  34.  
  35. BEGIN_MESSAGE_MAP(CWinHTTrackDoc, CDocument)
  36.     //{{AFX_MSG_MAP(CWinHTTrackDoc)
  37.         // NOTE - the ClassWizard will add and remove mapping macros here.
  38.         //    DO NOT EDIT what you see in these blocks of generated code!
  39.     //}}AFX_MSG_MAP
  40. END_MESSAGE_MAP()
  41.  
  42. /////////////////////////////////////////////////////////////////////////////
  43. // CWinHTTrackDoc construction/destruction
  44.  
  45. CWinHTTrackDoc::CWinHTTrackDoc()
  46. {
  47.     // TODO: add one-time construction code here
  48.  
  49. }
  50.  
  51. CWinHTTrackDoc::~CWinHTTrackDoc()
  52. {
  53. }
  54.  
  55. BOOL CWinHTTrackDoc::OnNewDocument()
  56. {
  57.     if (!CDocument::OnNewDocument())
  58.         return FALSE;
  59.  
  60.     // TODO: add reinitialization code here
  61.     // (SDI documents will reuse this document)
  62.  
  63.     return TRUE;
  64. }
  65.  
  66.  
  67.  
  68. /////////////////////////////////////////////////////////////////////////////
  69. // CWinHTTrackDoc serialization
  70.  
  71. void CWinHTTrackDoc::Serialize(CArchive& ar)
  72. {
  73.     if (ar.IsStoring())
  74.     {
  75.         // TODO: add storing code here
  76.     }
  77.     else
  78.     {
  79.         // TODO: add loading code here
  80.     }
  81. }
  82.  
  83. /////////////////////////////////////////////////////////////////////////////
  84. // CWinHTTrackDoc diagnostics
  85.  
  86. #ifdef _DEBUG
  87. void CWinHTTrackDoc::AssertValid() const
  88. {
  89.     CDocument::AssertValid();
  90. }
  91.  
  92. void CWinHTTrackDoc::Dump(CDumpContext& dc) const
  93. {
  94.     CDocument::Dump(dc);
  95. }
  96. #endif //_DEBUG
  97.  
  98. /////////////////////////////////////////////////////////////////////////////
  99. // CWinHTTrackDoc commands
  100.  
  101. BOOL CWinHTTrackDoc::OnSaveDocument(LPCTSTR lpszPathName) 
  102. {
  103.     // TODO: Add your specialized code here and/or call the base class
  104.     
  105.     //return CDocument::OnSaveDocument(lpszPathName);
  106.   //AfxMessageBox(lpszPathName);
  107.  
  108.   if (dialog0) {
  109.     CString PathName=lpszPathName;
  110.     int pos=PathName.ReverseFind('.');
  111.     if (pos>=0) {
  112.       if (PathName.Mid(pos)==".whtt") {
  113.         if (dialog0->GetPath0()+".whtt" != LPCSTR(lpszPathName)) {
  114.           switch(AfxMessageBox(LANG_G26b,MB_YESNOCANCEL)) {
  115.           case IDYES:
  116.             {
  117.               CString path=lpszPathName;
  118.               int pos=path.ReverseFind('.');
  119.               if (pos>=0) {
  120.                 CString dir=path.Left(pos);           // enlever .whtt
  121.                 pos=path.ReverseFind('\\');
  122.                 dialog0->m_projname=dir.Mid(pos+1);
  123.                 dialog0->m_projpath=dir.Left(pos);
  124.               }
  125.             }
  126.             break;
  127.           case IDNO:
  128.             break;
  129.           default:
  130.             return 0;
  131.             break;
  132.           }
  133.         }
  134.       }
  135.     }
  136.     
  137.     Save_current_profile(0);
  138.   }
  139.  
  140.   return 1;
  141. }
  142.  
  143. BOOL CWinHTTrackDoc::OnOpenDocument(LPCTSTR lpszPathName) 
  144. {
  145.     /*if (!CDocument::OnOpenDocument(lpszPathName))
  146.         return FALSE;
  147.     */
  148.   CFileStatus status;
  149.   if (CFile::GetStatus(lpszPathName,status)) {
  150.     CString PathName=lpszPathName;
  151.  
  152.     /* si rΘpertoire, convertir d'abord en .whtt */
  153.     if (status.m_attribute & 0x10 ) {       /* directory = 0x10 */
  154.       PathName+=".whtt";
  155.     }
  156.     
  157.     int pos=PathName.ReverseFind('.');
  158.     if (pos>=0) {
  159.       if (PathName.Mid(pos)==".whtt") {
  160.         CString dir=PathName.Left(pos)+"\\";
  161.         CString profile=dir+"hts-cache\\winprofile.ini";    
  162.         Read_profile((char*) LPCTSTR(profile),1);
  163.         //if (fexist((char*) LPCTSTR(profile))) {
  164.         //} else {
  165.           //AfxMessageBox(LANG(LANG_G26 /*"File not found!","Fichier introuvable!"*/));
  166.           /*return FALSE;*/
  167.         //}
  168.         if (dialog0->m_projname.GetLength() > 0) {
  169.           this_CWizTab->PressButton(PSBTN_NEXT);
  170.           this_CWizTab->PressButton(PSBTN_NEXT);
  171.         }
  172.       } else {
  173.         AfxMessageBox(LANG(LANG_G26 /*"File not found!","Fichier introuvable!"*/));
  174.         return FALSE;
  175.       }
  176.     } else {
  177.       AfxMessageBox(LANG(LANG_G26 /*"File not found!","Fichier introuvable!"*/));
  178.       return FALSE;
  179.     }
  180.   } else {
  181.     AfxMessageBox(LANG(LANG_G26 /*"File not found!","Fichier introuvable!"*/));
  182.     return FALSE;
  183.   }
  184.   
  185.   return TRUE;
  186. }
  187.  
  188. void CWinHTTrackDoc::OnCloseDocument() 
  189. {
  190.     // TODO: Add your specialized code here and/or call the base class
  191.     CDocument::OnCloseDocument();
  192. }
  193.